Event driven “simulation,” a type of computer-based modeling, has become a key tool in the design of data communication networks. Simulation is preferred because of the expense and complexity of constructing a physical model to determine the manner in which a proposed network behaves under certain stimulus. This in turn allows one to discern how its components should be constructed and configured.
For example, prior to purchasing an internet protocol (IP) node (the term “node” refers to, for example, a switch or router) to connect a LAN to the Internet, it is necessary to estimate the bandwidth required for the ports of the IP node or else risk purchasing hardware and bandwidth capacity unsuitable for its intended purpose. It is also useful to study the impact of adding additional load (e.g., increased traffic as a result of additional users, applications, etc.) to an existing network prior to actually obtaining or connecting the resources that would cause the extra load.
Accordingly, use of network simulation applications (also referred to herein as “simulators”) such as Opnet™ (from Opnet Technologies) and Network Simulator (“ns”) are widespread. Such network simulator applications are software-based and permit a user to configure and model an entire network. Thus, on a single personal computer, using a simulation application, a user can simulate the construction of an entire network, determine the viability of particular configurations, evaluate bandwidth/buffer resource allocations, and, in general, compare design options. A simulation application also enables the user to generate traffic patterns, monitor traffic flow, congestion, and discards (if any) at all nodes (or at least all those of interest to a particular analysis) in the simulated network. A “discard” of a packet occurs when a node experiences an overflow condition and fails to forward the packet, for example, by overwriting the packet with an incoming packet. Based on the simulation, a user can make decisions regarding construction of an actual physical network, as well as the configuration of a particular node in terms of necessary bandwidth, queue size, port speed, link capacity, etc., without ever having to construct a physical model.
Network simulation applications, however, generally do not run in real time, and event-driven simulators in particular are designed to model the passage of every packet through the simulated network. Accordingly, simulation applications, due to the increasing network complexity and high speed data transfer rates, require extensive CPU cycles to capture functional details (e.g. traffic characteristics and network element behaviors).
Network emulators, on the other hand, generally perform an abstracted network behavior or function in real-time while typically interfaced to and working in cooperation with actual operational network equipment. This is generally achieved by implementing some of the emulator functionality in hardware and/or embedded firmware in a manner such that it can interface and function as a “black box” that performs its intended tasks in real-time, while some other aspects might be abstracted and modeled internally to create the desired external effect.